package br.skytef.stmanager.beans;


import java.sql.Timestamp;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import br.skytef.stmanager.daos.ClienteContatoDao;
import br.skytef.stmanager.daos.ContatoDao;
import br.skytef.stmanager.daos.MotivoSuporteDao;
import br.skytef.stmanager.entities.ClienteContatoEntity;
import br.skytef.stmanager.entities.ClienteEntity;
import br.skytef.stmanager.entities.ContatoEntity;
import br.skytef.stmanager.beans.TarefaBean;
import br.skytef.stmanager.utils.Consulta;
import br.skytef.stmanager.utils.Data;


@ManagedBean(name="ContatoBean")
@SessionScoped
public class ContatoBean {

	public ContatoEntity getContato() {return contato;}
	public void setContato(ContatoEntity contato) {this.contato = contato;}
	private ContatoEntity contato;

	public ContatoEntity getResultContato() {return resultContato;}
	public void setResultContato(ContatoEntity resultContato) {this.resultContato = resultContato;}
	private ContatoEntity resultContato;

	public ClienteContatoEntity getClienteContato() {return clienteContato;}
	public void setClienteContato(ClienteContatoEntity clienteContato) {this.clienteContato = clienteContato;}
	private ClienteContatoEntity clienteContato;

	public ClienteEntity getCliente() {return cliente;}
	public void setCliente(ClienteEntity cliente) {this.cliente = cliente;}
	private ClienteEntity cliente;
	
	public String getError() {return error;}
	public void setError(String error) {this.error = error;}
	private String error;

	public String getTextoConsulta2() {return textoConsulta2;}
	public void setTextoConsulta2(String textoConsulta2) {this.textoConsulta2 = textoConsulta2;}
	private String textoConsulta2;

	public String getNome() {return nome;}
	public void setNome(String nome) {this.nome = nome;}
	private String nome;

	public String getEmail() {return email;}
	public void setEmail(String email) {this.email = email;}
	private String email;

	public String getTelefone() {return telefone;}
	public void setTelefone(String telefone) {this.telefone = telefone;}
	private String telefone;
	
	public Timestamp getDataInclusao() {return dataInclusao;}
	public void setDataInclusao(Timestamp dataInclusao) {this.dataInclusao = dataInclusao;}
	private Timestamp dataInclusao;

	
	public void cadastro() {  
		cliente = new Consulta().cliente(TarefaBean.getCadContato());
		contato = new ContatoEntity(nome,telefone,email,new Data().DtTime());
		new ContatoDao().inserir(contato);

		buscarContato();
		inserirClienteContato();

	}  
	public void cadastroContatoHistoricoTarefa() {  
		cliente = new Consulta().cliente(HistoricoTarefaBean.getCadContato());
		contato = new ContatoEntity(nome,telefone,email,new Data().DtTime());
		new ContatoDao().inserir(contato);

		buscarContato();
		inserirClienteContatoHistoricoTarefa();

	}  
	
	public void buscarContato(){
		resultContato = new ContatoDao().bucarContato(contato.getNome());
	}

	public void inserirClienteContato(){
		FacesContext facesContext = FacesContext.getCurrentInstance();
		clienteContato = new ClienteContatoEntity(resultContato.getContatoId(),cliente.getIdCliente(),new Data().DtTime());
		
		if (new ClienteContatoDao().inserirClienteContato(clienteContato)){
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastro realizado com sucesso", ""));
		    TarefaBean.getListContatoEntities();
			limpar();
		
		
		}else{
			error = MotivoSuporteDao.getErro();
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Não foi possível realizar o cadastro:", error));
		}
	}
	
	
	public void inserirClienteContatoHistoricoTarefa(){
		FacesContext facesContext = FacesContext.getCurrentInstance();
		clienteContato = new ClienteContatoEntity(resultContato.getContatoId(),cliente.getIdCliente(),new Data().DtTime());
		
		if (new ClienteContatoDao().inserirClienteContato(clienteContato)){
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastro realizado com sucesso", ""));
		    HistoricoTarefaBean.getListContatoEntities();
			limpar();
		
		
		}else{
			error = MotivoSuporteDao.getErro();
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Não foi possível realizar o cadastro:", error));
		}
	}
	
	public String limpar(){
		setNome(null);
		setEmail(null);
		setTelefone(null);
		return null;
	}
	
}

